/**
 * 腾讯云API配置
 */

// 从环境变量中获取配置
const tencentCloudConfig = {
  // 腾讯云API密钥
  secretId: process.env.TENCENT_SECRET_ID,
  secretKey: process.env.TENCENT_SECRET_KEY,
  
  // 语音识别配置
  asr: {
    // 引擎类型：
    // - 8k_0: 8k 中文普通话通用
    // - 16k_0: 16k 中文普通话通用
    // - 16k_en: 16k 英语
    engineType: process.env.ASR_ENGINE_TYPE || '16k_0',
    
    // 音频格式：
    // - wav
    // - mp3
    // - silk
    // - pcm
    voiceFormat: process.env.ASR_VOICE_FORMAT || 'wav',
    
    // 是否需要词级别时间戳
    needWordInfo: process.env.ASR_NEED_WORD_INFO === 'true' ? 1 : 0,
    
    // 实时语音识别配置
    realtime: {
      // 实时语音识别引擎类型
      engineType: process.env.REALTIME_ASR_ENGINE_TYPE || '16k_0',
      
      // 是否返回中间识别结果
      needVAD: process.env.REALTIME_ASR_NEED_VAD === 'true' ? 1 : 0
    }
  },
  
  // 文本转语音配置
  tts: {
    // 音色：
    // - 0: 云小宁，亲和女声
    // - 1: 云小奇，亲和男声
    // - 2: 云小晚，成熟男声
    // - 4: 云小叶，温暖女声
    // - 5: 云小欣，情感女声
    // - 6: 云小龙，情感男声
    // - 7: 云小曼，客服女声
    // - 1000: 智瑜，情感女声
    // - 1001: 智聆，通用女声
    // - 1002: 智美，客服女声
    // - 1003: 智云，通用男声
    voiceType: parseInt(process.env.TTS_VOICE_TYPE || '0'),
    
    // 音量大小，范围：[0, 10]，默认为0，代表正常音量
    volume: parseInt(process.env.TTS_VOLUME || '0'),
    
    // 语速，范围：[-2, 2]，默认为0，代表正常语速
    speed: parseFloat(process.env.TTS_SPEED || '0'),
    
    // 音频采样率：
    // - 16000: 16k采样率
    // - 8000: 8k采样率
    sampleRate: parseInt(process.env.TTS_SAMPLE_RATE || '16000'),
    
    // 返回音频格式：
    // - mp3
    // - wav
    // - pcm
    audioType: process.env.TTS_AUDIO_TYPE || 'mp3'
  }
};

// 验证必要的配置
const validateConfig = () => {
  const requiredVars = [
    { key: 'secretId', name: 'TENCENT_SECRET_ID' },
    { key: 'secretKey', name: 'TENCENT_SECRET_KEY' }
  ];
  
  const missingVars = requiredVars.filter(
    ({ key }) => !tencentCloudConfig[key]
  );
  
  if (missingVars.length > 0) {
    const missingVarNames = missingVars.map(({ name }) => name).join(', ');
    console.warn(`警告: 缺少腾讯云API必要的环境变量: ${missingVarNames}`);
    console.warn('某些功能可能无法正常工作。请在.env文件中设置这些变量。');
  }
};

// 执行配置验证
validateConfig();

module.exports = {
  tencentCloudConfig
};